这两种三栏式布局都实现了中间内容优先渲染、两侧固定宽度、中间宽度自适应的特点
<div class="container">
<div class="main">#main (自适应)</div>
<div class="left">#left (200px)</div>
<div class="right">#right (200px)</div>
</div>
.container {
padding: 0 200px; /* 左右内间距等于左右列宽度 */
}
.main {
width: 100%;
float: left;
}
.left {
width: 200px;
float: left;
margin-left: -100%; /* 移动到 main 左侧 */
position: relative;
left: -200px; /* 再向左移动自身宽度 */
}
.right {
width: 200px;
float: left;
margin-left: -200px; /* 移动到 main 右侧 */
position: relative;
right: -200px; /* 再向右移动自身宽度 */
}
<div class="container">
<div class="main-wrapper">
<div class="main">#main (自适应)</div>
</div>
<div class="left">#left (200px)</div>
<div class="right">#right (200px)</div>
</div>
.main-wrapper {
width: 100%;
float: left;
}
.main {
margin: 0 200px; /* 内容区域留出边距 */
}
.left {
width: 200px;
float: left;
margin-left: -100%; /* 移动到最左侧 */
}
.right {
width: 200px;
float: left;
margin-left: -200px; /* 移动到最右侧 */
}
核心区别: